package com.dyw.ba02;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;


@Aspect
public class MyAspect {

    @Before(value = "myPointcut()")
    public void myBefore01() {
        System.out.println("前置通知");
    }

    /**
     * @Pointcut:定义和管理切入点,如果你的项目中有多个切入点表达式是重复的,可以复用. 可以使用@Pointcut
     * 属性:value 切入点表达式
     * 位置:自定义方法的上面
     * 特点:
     * 当使用@Pointcut定义在一个方法的上面,此时这方法的名称就是切入点表达式的别名.
     * 当其他的通知中,value属性就可以使用这个方法的名称,代替切入点表达式
     */

    @Pointcut(value = "execution(* *..SomeServiceImpl.doSome(..))")
    public void myPointcut() {
        //无需代码 只是用该方法名代替切入点表达式
    }
}